package cn.cjxy.web.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

/**
 * @author huangjie
 * @date 2025/9/27
 */
@WebFilter("/*") //拦截规则
public class Demo01Filter implements Filter {
    //初始化
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

        System.out.println("filter init------");
    }

    /**
     * 当有新的请求被Filter拦截到时执行该方法
     * @param servletRequest
     * @param servletResponse
     * @param filterChain    放行请求
     * @throws IOException
     * @throws ServletException
     */
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("filter catch------");
        filterChain.doFilter(servletRequest,servletResponse);//放行请求
        System.out.println("filter....after ------");

    }
    //销毁
    @Override
    public void destroy() {
        System.out.println("filter---destroy---");
    }

    /**
     * todo
     * 需求：编写过滤器，过滤所有Servlet中使用POST方法提交的汉字的编码。
     * 1. 有2个Servlet，一个是LoginServlet登录，一个是RegisterServlet注册
     * 2. 有2个JSP页面，1个是login.jsp，有表单，登录名。1个register.jsp，有表单，有注册的名字。都使用POST提交用户名使用汉字提交。
     * 3. 使用过滤器，对所有的Servlet的POST方法进行过滤。
     * 4. 在没有使用过滤器之前，每个Servlet必须加上汉字编码：request.setCharacterEncoding(字符集);字符集与网页的编码要一致
     */
}
